<template>
  <el-form
    :model="loginForm"
    :rules="loginRules"
    ref="loginForm"
    label-width="100px"
    class="login-form"
  >
    <el-form-item label="手机号" prop="phone">
      <el-input v-model.trim="loginForm.phone"></el-input>
    </el-form-item>
    <el-form-item label="密码" prop="password">
      <el-input v-model.trim="loginForm.password"></el-input>
    </el-form-item>

    <el-form-item>
      <el-button type="primary" @click="submitForm('loginForm')"
        >立即创建</el-button
      >
      <el-button @click="resetForm('loginForm')">重置</el-button>
    </el-form-item>
  </el-form>
</template>
<script>
export default {
  data () {
    return {
      loginForm: {
        phone: '',
        password: ''
      },
      loginRules: {
        phone: [
          // required:true必须写类容,不能为空
          // message:信息,提示用户的内容,如果用户不遵守这条规则，就会提示用户这条信息
          // trigger:扳机,触发时机,blur表示失去焦点时触发
          { required: true, message: '请输入手机号', trigger: 'blur' },
          // min: 最少输入3个字符
          // max: 最多输入5个字符
          // { min: 11, max: 11, message: '长度必须为11位', trigger: 'blur' }
          // trigger一般有blur和change两种,文本框建议使用blur，选择框使用blur，
          // 手机号要使用正则表达式
          { pattern: /^1[3-9]\d{9}$/, message: '请输入正确的手机号', trigger: 'blur' }
        ],
        password: [
          { required: true, message: '请输入密码', trigger: 'blur' },
          { min: 6, max: 11, message: '长度在 6 到 11 个字符', trigger: 'blur' }
        ]
      }
    }
  },
  methods: {
    submitForm () {
      // validate会对整个表单进行校验,校验完成后将结果传过来返回值是boolean值
      this.$refs.loginForm.validate((val) => {
        // console.log(val)
        if (!val) alert('校验失败')
        console.log('执行登录的业务逻辑')
      })

      // this.$refs[formName].validate((valid) => {
      //   if (valid) {
      //     alert('submit!')
      //   } else {
      //     console.log('error submit!!')
      //     return false
      //   }
      // })
    },
    resetForm (formName) {
      // this.$refs[formName].resetFields()
    }
  }
}
</script>

<style lang="scss" scoped></style>
